﻿#include <stdio.h>
#include <conio.h>
#include <graphics.h>

int main()
{
	float width,height;
	width = 600;
	height = 400;
	initgraph(width,height);

	float ball_x,ball_y,ball_vy,gravity,radius;
	radius = 20;
	ball_x = width/4;
	ball_y = height - radius;
	ball_vy = 0;
	gravity = 0.6;

	float rect_left_x,rect_top_y,rect_width,rect_height;
	float rect_vx;
	rect_height = 100;
	rect_width = 20;
	rect_left_x = width*3/4;
	rect_top_y = height - rect_height;
	rect_vx = -3;

	int score = 0;
	int isBallonFloor = 1;

	while (1)
	{
		if (kbhit())
		{
			char input = _getch();
			if (input==' ' && isBallonFloor == 1)
			{
				ball_vy = -18;
				isBallonFloor = 0;
			}
		}
		ball_vy = ball_vy + gravity;
		ball_y = ball_y +ball_vy;
		if (ball_y>=height - radius)
		{
			ball_y = 0;
			ball_y = height - radius;
			isBallonFloor = 1;
		}
		rect_left_x = rect_left_x + rect_vx;
		if (rect_left_x<=0)
		{
			score++;
			rect_left_x = width;
			rect_height = rand()%int(height/4) + height/4;
			rect_vx = rand()/float(RAND_MAX)*4 - 7;
		}
		if ((rect_left_x<=ball_x+radius)&&(rect_left_x+rect_width>=ball_x-radius)&&(height-rect_height<=ball_y+radius))
		{
			score = 0;
			Sleep(100);		
		}
		cleardevice();
		fillrectangle( rect_left_x,height - rect_height,rect_left_x+rect_width,height);
	    fillcircle(ball_x,ball_y,radius);

		TCHAR s[20];
		_stprintf(s,_T("%d"),score);
		settextstyle(40,0,_T("宋体"));
		outtextxy(50,30,s);
		Sleep(10);
	}
	_getch();
	closegraph();
	
	return 0;
}













